]> permondes.de Git - Analog_Engine.git/blob - AESL/TP1 04.11 TwoRaindrops.AESL
Harmonic Oscillator basics, some changes to AESL
[Analog_Engine.git] / AESL / TP1 04.11 TwoRaindrops.AESL
1 IDENTIFICATION DIVISION
2 PROGRAM-ID TwoRaindrops
3 VERSION 20240201
4 COMMENT Two raindrops of same size and altitude are falling from a cloud.
5 COMMENT How long does it take until the touch?
6 COMMENT s'' = -2*gamma*m/s^2
7
8 ENVIRONMENT DIVISION
9 ENGINE Anabrid-THAT
10 TIMEBASE 1ms
11 REQUIRES COEFFICIENT 3, INVERTER 1, INTEGRATOR 2, COMPARATOR 1, MULTIPLIER 2, OPEN-AMP 1
12
13 DATA DIVISION
14 OUTPUT OUTPUT.X s_limited
15 COEFFICIENT.1 MIN_DISTANCE # 2*radius of the raindrop
16 COEFFICIENT.2 INIT_DISTANCE # initial distance -s0
17 COEFFICIENT.3 FACTOR # 2*gamma*m
18
19 PROGRAM DIVISION
20 +1 -> COEFFICIENT.MIN_DISTANCE -> 2r
21 2r -> INVERTER -> -2r
22 -1 -> COEFFICIENT.INIT_DISTANCE -> -s0
23 +1 -> COEFFICIENT.FACTOR -> 2gamma*m
24 s'' -> INTEGRATOR -> -s'
25 -s', IC:-s0 -> INTEGRATOR -> s
26
27 # The raindrops may only approach until they touch. Our model does not include their unification
28 A:s, B:-2r, GT0:s, LT0:2r -> COMPARATOR -> s_limited
29
30 s_limited,s_limited -> MULTIPLIER -> s^2
31
32 # division 2gamma*m / s^2
33 # Open amplifier is realized on THAT by FB:SUMMER.GND -> SUMMER
34 2gamma*m, inp2 -> OPEN-AMP -> -2gamma*m/s^2=s''
35 2gamma*m^2, s^2 -> MULTIPLIER -> inp2
36
37 OPERATION DIVISION
38 MODE REPEAT
39 OP-TIME 12ms